﻿using EasyERP_BLL.Base;
using EasyERP_DAL;
using EasyERP_DAL.Base;
using EasyERP_DAL.Wares;
using EasyERP_Model;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EasyERP_BLL.Wares
{
    /// <summary>
    /// 商品信息管理业务逻辑类
    /// </summary>
    public class B_Item_BLL
    {
        /// <summary>
        /// 声明只读商品信息数据访问类对象
        /// </summary>
        private readonly B_Item_DAL Item_DAL = new B_Item_DAL();

        #region 查询商品信息表
        /// <summary>
        /// 查询商品信息表
        /// </summary>
        /// <param name="mdoel">商品信息实体对象</param>
        /// <returns>返回商品信息表</returns>
        public DataTable Get_B_Item(B_Item model)
        {
            try
            {
                return Item_DAL.Get_B_Item(model);
            }
            catch (Exception ex)
            {
                B_Message_BLL.MessageCaveat(ex);
                return null;
            }
        }
        #endregion

        #region 添加商品信息
        /// <summary>
        /// 添加商品信息
        /// </summary>
        /// <param name="model">商品信息实体对象</param>
        /// <returns>返回True：成功；返回False：失败</returns>
        public bool Insert_B_Item(B_Item model)
        {
            if (string.IsNullOrWhiteSpace(model.item_cd))                   //商品码编为空
            {
                B_Message_BLL.MessageCaveat("2015");                        //弹出提示框
                return false;
            }

            if (string.IsNullOrWhiteSpace(model.item_nm))                   //商品名称为空
            {
                B_Message_BLL.MessageCaveat("2016");                        //弹出提示框
                return false;
            }

            if (string.IsNullOrWhiteSpace(model.item_price.ToString()))     //商品单价为空
            {
                B_Message_BLL.MessageCaveat("2017");                        //弹出提示框
                return false;
            }

            if (string.IsNullOrWhiteSpace(model.item_unit))                 //商品单位为空
            {
                B_Message_BLL.MessageCaveat("2018");                        //弹出提示框
                return false;
            }

            if (string.IsNullOrWhiteSpace(model.item_group))                //商品分类为空
            {
                B_Message_BLL.MessageCaveat("2019");                        //弹出提示框
                return false;
            }

            //保存前验证数据是否存在
            if (Item_DAL.Exists(model))      //存在
            {
                B_Message_BLL.MessageCaveat("1001");        //弹出提示框
                return false;
            }

            try
            {
                return Item_DAL.Insert_B_Item(model);
            }
            catch (Exception ex)
            {
                B_Message_BLL.MessageCaveat(ex);
                return false;
            }
        }
        #endregion

        #region 删除商品信息
        /// <summary>
        /// 删除商品信息
        /// </summary>
        /// <param name="model">商品信息实体对象</param>
        /// <returns>返回True：成功；返回False：失败</returns>
        public bool Delete_B_Item(B_Item model)
        {
            if (Item_DAL.Exists_Po_dtl(model))                      //判断采购订单中有要删除的商品信息
            {
                B_Message_BLL.MessageCaveat("1007");                //弹出提示框
                return false;
            }

            if (Item_DAL.Exists_So_dtl(model))                      //判断销售订单中有要删除的商品信息
            {
                B_Message_BLL.MessageCaveat("1008");                //弹出提示框
                return false;
            }

            if (Item_DAL.Exists_B_Item_Price(model))                //判断商品单价中有要删除的商品信息
            {
                B_Message_BLL.MessageCaveat("1009");                //弹出提示框
                return false;
            }

            if (Item_DAL.Exists(model))                             //判断要删除的数据存在
            {
                try
                {
                    return Item_DAL.Delete_B_Item(model);           //删除数据
                }
                catch (Exception ex)
                {
                    B_Message_BLL.MessageCaveat(ex);
                    return false;
                }
            }
            B_Message_BLL.MessageCaveat("1002");                    //弹出提示框
            return false;
        }
        #endregion

        #region 修改商品信息
        /// <summary>
        /// 修改商品信息
        /// </summary>
        /// <param name="model">商品信息实体对象</param>
        /// <returns>返回True：成功；返回False：失败</returns>
        public bool Update_B_Item(B_Item model)
        {
            if (string.IsNullOrWhiteSpace(model.item_nm))                   //商品名称为空
            {
                B_Message_BLL.MessageCaveat("2016");                        //弹出提示框
                return false;
            }

            if (string.IsNullOrWhiteSpace(model.item_price.ToString()))     //商品单价为空
            {
                B_Message_BLL.MessageCaveat("2017");                        //弹出提示框
                return false;
            }

            if (string.IsNullOrWhiteSpace(model.item_unit))                 //商品单位为空
            {
                B_Message_BLL.MessageCaveat("2018");                        //弹出提示框
                return false;
            }

            if (string.IsNullOrWhiteSpace(model.item_group))                //商品分类为空
            {
                B_Message_BLL.MessageCaveat("2019");                        //弹出提示框
                return false;
            }

            if (Item_DAL.Exists(model))                         //判断要修改的数据存在
            {
                try
                {
                    return Item_DAL.Update_B_Item(model);       //修改数据
                }
                catch (Exception ex)
                {
                    B_Message_BLL.MessageCaveat(ex);
                    return false;
                }
            }
            B_Message_BLL.MessageCaveat("1003");                //弹出提示框
            return false;
        }
        #endregion
    }
}
